Пользователи и регистрация
Страница авторизации
User/Security/login.html.twig
В данном шаблоне обязательно должны присутствовать два input поля с именами: _username
и _password
.
Для предотвращения CSRF атак необходимо в форме авторизации передавать hidden поле с именем _csrf_token
и
значением {{ csrf_token }}
. Например:
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}"/>
Также, в шаблоне может присутствовать контрол с именем _remember_me
. В случае, если этот контрол заполнен ( например,
отмечен чекбокс), то пользователю в случае успешной авторизации будет присвоена специально сформированная cookie,
которая позволит автоматически авторизовать пользователя при дальнейших посещениях сайта.
<div>
<input type="checkbox" id="_remember_me" name="_remember_me" value="on" checked>
<label for="_remember_me">Запомнить меня</label>
</div>
В данный шаблон передаются следующие переменные:
Название | Описание |
---|---|
last_username | Последнее используемое имя пользователя. Этой переменной можно предзаполнить {{ _username }} . |
error | Объект, описывающий ошибку авторизации. Пример использования: {{ error.messageKey|trans(error.messageData, 'OutofboxUserBundle') }} . |
csrf_token | Токен для противодействию CSRF-атакам. Данное значение должно быть в hidden поле формы с именем _csrf_token . |
target_path | URI, куда отправить пользователя после успешной авторизации. Следует передавать в hidden поле формы с именем _target_path . |
Профиль пользователя
User/profile.html.twig
Получить доступ к текущему авторизованному пользователю можно через переменную {{ app.user }}
.
Более подробное про сущность Пользователь читайте в соответствующем разделе.
Никаких дополнительных переменных в этот шаблон не передается.
Страница регистрации пользователя
User/Registration/register.html.twig
В данный шаблон передается уже сформированный объект формы. Ниже представлен список доступных полей формы.
{{ form_errors(form) }}
{{ form_start(form) }}
{{ form_row(form.username) }}
{{ form_row(form.email) }}
{{ form_row(form.password) }}
{{ form_widget(form._token) }}
<div>
<button type="submit">Зарегистрироваться</button>
</div>
{{ form_end(form, { 'render_rest': false }) }}
Пример развернутых полей формы регистрации:
{{ form_errors(form) }}
{{ form_start(form, { 'attr': { 'class': 'form-submit' } }) }}
<div>
{{ form_label(form.username, 'Ваш логин', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.username, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.username) }}
</div>
<div>
{{ form_label(form.email, 'E-mail', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.email, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.email) }}
</div>
<div>
{{ form_label(form.password.first, 'Пароль', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.password.first, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.password.first) }}
</div>
<div>
{{ form_label(form.password.second, 'Пароль еще раз', {'label_attr': {'class': 'some-class'}}) }}
{{ form_widget(form.password.second, {'attr': {'class': 'some-class'}}) }}
{{ form_errors(form.password.second) }}
</div>
{{ form_widget(form._token) }}
<div>
<button type="submit">Зарегистрироваться</button>
</div>
{{ form_end(form, { 'render_rest': false }) }}